Digital halftoning is a technique used in image processing to produce a halftone output image from a continuous tone input image. In order to halftone a colour image, a continuous tone colour image is sampled, for example with a scanner, and the samples are then digitised and stored in a computer device. In a full colour system, the digitised samples, or pixels, can consist of independent binary representations of the colour components of an image. For example, in the well known red, green and blue system (RGB) utilised in most output displays, the digitised samples or pixels consist of binary representations of the red, green and blue scanned colour values respectively. These binary representations typically range from 0 to 255 for each colour, thereby comprising 8 bits for each primary colour, or 24 bits to represent one pixel. Another colour system involves cyan, magenta, yellow and black (CMYK) and is used predominantly in printer output devices.
Standard cathode ray tube (CRT) type display devices are able to display each pixel with a large number of variations of each colour component of the pixel, giving rise to the desirability of storing 256 possible values for each colour component of each pixel of a CRT type display. Other output devices however, such as printers and certain display devices such as ferro-electric liquid crystal displays are often designed to only be able to display a limited number of colours or intensity values for each output colour Hence, when displaying an image on such devices, it is necessary to create the sensation of multilevel colours by suitably distributing the possible output colours in the output image. By way of example, as shown in FIG. 1, it can be assumed that each pixel 1 of a first example display device is able to display red. green, and blue colour values RGB), with each colour value taking a totally "on" or totally "off" state.
Therefore each colour component value can display one of two colours and the total number of colours which can be displayed by such a pixel will be 2.times.2.times.2=8 colours, A second illustrative example is that of a black and white raster display device wherein each pixel can display one of two colours, with black or white.
As shown in FIG. 2 it is desired to display a stored input image 2 on a display device 3 where each pixel of the display device 3 can only display a restricted number of colours. In such cases, it is necessary to utilise a halftoning process 4 so as to convert the input image 2 to a form readily displayable on the display device 3 The halftoning process 4 that is actually performed can include dithering or error diffusion.
One error diffusion process can be explained with reference to FIG. 3, for example with respect to the display of monochrome images. In a monochrome system, each pixel of an array 7 of pixels can display either black (off) or white (on). Assuming that the input image has 256 possible levels of display, a decision must be taken whether to display an on or an off value. In FIG. 4, an output (halftone) value of 0 (or off) is displayed when a derived input value, being the sum of the input value and portions of error values of previously processed pixels, is less than or equal to 127, and and an output value of 1 (or on) is displayed when the derived input value is greater than or equal to 128, An error output value e.sub.ij for a current pixel 6 being displayed is derived, the error value being the difference between the derived input value and the chosen halftone value. As illustrated in FIG. 3, portions of the error value e.sub.ij are then distributed amongst the surrounding pixels which have not, as yet, been processed. FIG. 3 shows one scheme for distributing the error whereby two eighths of the error is added to the value of pixel 8, one eighth is added to the pixel 9, one eighth is added to the pixel 10, two eights is added to the pixel 11, one eighth is added to the pixel 12, and one eighth is added to the pixel 13. This has the effect of spreading, or diffusing, the error over several pixels in the output image.
With respect to colour display devices, error diffusion of a full colour image can be performed by error diffusing each output colour independently.
One deficiency of error diffusion is that it becomes inaccurate at very low and very high intensity values of the input image. This can result in clearly noticeable image degradation not visually evident at locations where the intensity of the input image is of a median type value.